11-dars. Fayllar (Matnli fayllarga ma'lumot yozish)
Darsning Maqsadlari:
- Fayllar bilan ishlashni o'rganish.
- Faylni e'lon qilish va ochish jarayonini tushunish.
- Fayllarga ma'lumot yozish va o'qish uchun zarur funksiyalarni o'zlashtirish.
- Fayl pozitsiyasini boshqarish funksiyalarini tushunish.
Fayllar Nima?
Fayllar kompyuterda ma'lumotlarni saqlash va boshqarish uchun ishlatiladi. Fayllar matnli, binar yoki boshqa formatlarda bo'lishi mumkin. Bugungi darsda biz matnli fayllar bilan ishlashni o'rganamiz. Matnli fayllar — bu ASCII yoki Unicode kabi kodlashda yozilgan fayllardir.
Faylni E'lon Qilish
Faylni e'lon qilish dasturda faylga murojaat qilish imkonini beradi. Buni FILE tipidagi o'zgaruvchi yordamida amalga oshiramiz.
Misol:
FILE *fayl;
Izoh
FILE— bu faylni boshqarish uchun foydalaniladigan tuzilma.fayl— bu faylga murojaat qilish uchun ko'rsatkich.
Faylni Ochish: fopen
Faylni ochish uchun fopen funksiyasidan foydalanamiz. Sintaksisi:
FILE *fopen(const char *filename, const char *mode);
filename— ochiladigan faylning nomi.mode— faylni ochish rejimi (masalan, "r" — o'qish, "w" — yozish, "a" — qo'shish).
Misol:
fayl = fopen("misol.txt", "w"); // Faylni yozish uchun ochamiz
Faylni Yopish: fclose
Faylni yopish uchun fclose funksiyasidan foydalanamiz. Sintaksisi:
int fclose(FILE *stream);
Misol:
fclose(fayl); // Faylni yopamiz
Faylni yopish kerak, chunki ochiq fayl bilan ishlashda xatoliklar yuzaga kelishi mumkin.
Faylga Ma'lumot Yozish: fputc va fputs
fputc
Bu funksiya bitta belgi (character) yozish uchun ishlatiladi.
int fputc(int char, FILE *stream);
Misol:
fputc('A', fayl); // 'A' belgisini faylga yozamiz
fputs
Bu funksiya satrni (string) faylga yozish uchun ishlatiladi.
int fputs(const char *str, FILE *stream);
Misol:
fputs("Salom, dunyo!", fayl); // "Salom, dunyo!" satrini faylga yozamiz
fputc faqat bitta belgi yozadi, fputs esa butun satrni yozadi.
Fayldan Ma'lumot O'qish: fscanf
Bu funksiya formatlangan ma'lumotlarni fayldan o'qish uchun ishlatiladi.
int fscanf(FILE *stream, const char *format, ...);
Misol:
int son;
fscanf(fayl, "%d", &son); // Fayldan butun sonni o'qiymiz
fscanf formatlash imkoniyatini beradi, shuning uchun kerakli turdagi ma'lumotlarni olish osonlashadi.
Fayl Pozitsiyasini Boshqarish: fseek va ftell
fseek
Bu funksiya fayl ichida pozitsiyani o'zgartirish uchun ishlatiladi.
int fseek(FILE *stream, long offset, int whence);
Misol:
fseek(fayl, 0, SEEK_SET); // Fayl boshidan boshlash
ftell
Bu funksiya hozirgi pozitsiyani aniqlash uchun ishlatiladi.
long ftell(FILE *stream);
Misol:
long pozitsiya = ftell(fayl); // Hozirgi pozitsiyani olish
fseek fayl ichida harakatlanish imkonini beradi, ftell esa qayerda ekanligimizni bilishimiz uchun kerak.
Xulosa
Bugun biz fayllar bilan ishlashni, matnli faylga ma'lumot yozish va o'qish funksiyalarini o'rganib chiqdik. Fayllar dasturlashda muhim o'rin tutadi va ularni to'g'ri ishlatish dasturiy ta'minotni yanada samarali qiladi.
Savollar:
fopenvafclosefunksiyalarining maqsadi nima?fputcvafputso'rtasidagi farq nima?fscanffunksiyasining sintaksisi qanday?- Fayl pozitsiyasini qanday boshqarishimiz mumkin?